<?php
include_once($URL_OBJETO.'conexion.php');
include_once($URL_OBJETO.'oMuestra.php');

class aMuestra  {
	
	public function getMuestras() {
		$lista = $this->getListaMuestrasxCriterio("");
		return $lista;
	}
	
	public function getMuestraxCodigo($cod_muestra) {
		$lista = $this->getListaMuestrasxCriterio("cod_muestra = $cod_muestra");
		if(count($lista) > 0) 
			return $lista[0];
		else
			return false;
	}
	
	public function getMuestrasxUe($codUe) {
		$lista = $this->getListaMuestrasxCriterio("codue = $codUe");
		return $lista;
	} 

	public function getListaMuestrasxCriterio($criterio) {
		$connect = new PG();
		if(!$connect->Conectar()) {
			exit($connect->VerError());
		}
		else {
			$sql = "SELECT 
					  m.cod_muestra,
					  m.codue,
					  m.cod_muestra_text,
					  m.descripcion,
					  m.medidas_muestreo,
					  m.destino_muestra,
					  m.tipo_material,
					  m.contexto_inmediato,
					  m.justificacion,
					  m.revision,
					  m.autor,
					  m.peso,
					  m.fecha_exhumacion,
					  m.museable,
					  m.ingreso_gabinete,
					  u.codue_text
				  FROM 
					  public.muestra m inner join public.uestratigrafica u 
					  on m.codue = u.codue";
			
			if(!empty($criterio)) {
				$sql .= " WHERE ".$criterio;				
			}
	
			$lista = array();
			
			$sql = $connect->pgt_query($sql);
			while($row = pg_fetch_array($sql)){
				$o = new oMuestra();
				$o->setCodMuestra($row['cod_muestra']);
				$o->setCodue($row['codue']);
				$o->setCodMuestraText($row['cod_muestra_text']);
				$o->setDescripcion($row['descripcion']);
				$o->setMedidasMuestreo($row['medidas_muestreo']);
				$o->setDestinoMuestra($row['tipo_material']);
				$o->setContextoInmediato($row['contexto_inmediato']);
				$o->setJustificacion($row['justificacion']);
				$o->setRevision($row['revision']);
				$o->setAutor($row['autor']);
				$o->setPeso($row['peso']);
				$o->setFechaExhumacion($row['fecha_exhumacion']);
				$o->setMuseable($row['museable']);
				$o->setIngresoGabinete($row['ingreso_gabinete']);
				$o->setCodueText($row['codue_text']);
				array_push($lista, $o);
			}
			$connect->LimpiarConsulta();
			$connect->CerrarConexion();
			return $lista;
		}
	}
	
	public function getListaMuestrasIngreso() {
		$connect = new PG();
		if(!$connect->Conectar()) {
			exit($connect->VerError());
		}
		else {
			$sql = "SELECT
					  m.cod_muestra,
					  m.codue,
					  m.cod_muestra_text,
					  m.descripcion,
					  m.medidas_muestreo,
					  m.destino_muestra,
					  m.tipo_material,
					  m.contexto_inmediato,
					  m.justificacion,
					  m.revision,
					  m.autor,
					  m.peso,
					  m.fecha_exhumacion,
					  m.museable,
					  m.ingreso_gabinete,
					  u.codue_text
				  FROM
					  public.muestra m 
					  inner join public.uestratigrafica u on m.codue = u.codue 
					  left join public.gabinete g on cod_item = m.cod_muestra and g.tipo_item = '2'  
				  WHERE 
					  (en_gabinete = '0' or en_gabinete IS NULL) 
					  ";
				
			$lista = array();
				
			$sql = $connect->pgt_query($sql);
			while($row = pg_fetch_array($sql)){
				$o = new oMuestra();
				$o->setCodMuestra($row['cod_muestra']);
				$o->setCodue($row['codue']);
				$o->setCodMuestraText($row['cod_muestra_text']);
				$o->setDescripcion($row['descripcion']);
				$o->setMedidasMuestreo($row['medidas_muestreo']);
				$o->setDestinoMuestra($row['tipo_material']);
				$o->setContextoInmediato($row['contexto_inmediato']);
				$o->setJustificacion($row['justificacion']);
				$o->setRevision($row['revision']);
				$o->setAutor($row['autor']);
				$o->setPeso($row['peso']);
				$o->setFechaExhumacion($row['fecha_exhumacion']);
				$o->setMuseable($row['museable']);
				$o->setIngresoGabinete($row['ingreso_gabinete']);
				$o->setCodueText($row['codue_text']);
				array_push($lista, $o);
			}
			$connect->LimpiarConsulta();
			$connect->CerrarConexion();
			return $lista;
		}
	}
	
	public function getListaMuestrasSalida($codGabinete) {
		$connect = new PG();
		if(!$connect->Conectar()) {
			exit($connect->VerError());
		}
		else {
			$sql = "SELECT
					  m.cod_muestra,
					  m.codue,
					  m.cod_muestra_text,
					  m.descripcion,
					  m.medidas_muestreo,
					  m.destino_muestra,
					  m.tipo_material,
					  m.contexto_inmediato,
					  m.justificacion,
					  m.revision,
					  m.autor,
					  m.peso,
					  m.fecha_exhumacion,
					  m.museable,
					  m.ingreso_gabinete,
					  u.codue_text
				  FROM
					  public.muestra m
					  inner join public.uestratigrafica u on m.codue = u.codue
					  inner join public.gabinete g on cod_item = m.cod_muestra and g.tipo_item = '2'
				  WHERE
					  (en_gabinete = '1') and g.cod_gabinete = $codGabinete  ";
	
			$lista = array();
	
			$sql = $connect->pgt_query($sql);
			while($row = pg_fetch_array($sql)){
				$o = new oMuestra();
				$o->setCodMuestra($row['cod_muestra']);
				$o->setCodue($row['codue']);
				$o->setCodMuestraText($row['cod_muestra_text']);
				$o->setDescripcion($row['descripcion']);
				$o->setMedidasMuestreo($row['medidas_muestreo']);
				$o->setDestinoMuestra($row['tipo_material']);
				$o->setContextoInmediato($row['contexto_inmediato']);
				$o->setJustificacion($row['justificacion']);
				$o->setRevision($row['revision']);
				$o->setAutor($row['autor']);
				$o->setPeso($row['peso']);
				$o->setFechaExhumacion($row['fecha_exhumacion']);
				$o->setMuseable($row['museable']);
				$o->setIngresoGabinete($row['ingreso_gabinete']);
				$o->setCodueText($row['codue_text']);
				array_push($lista, $o);
			}
			$connect->LimpiarConsulta();
			$connect->CerrarConexion();
			return $lista;
		}
	}
	
	
	public function getCountPorCriterio($criterio) {
		$connect = new PG();
		if(!$connect->Conectar()) {
			exit($connect->VerError());
		}
		else {
			$sql = "SELECT count(*) FROM muestra m WHERE ".$criterio;
	
			$lista = array();
				
			$sql = $connect->pgt_query($sql);
			$row = pg_fetch_array($sql);
			$contador = $row[0];
	
			$connect->LimpiarConsulta();
			$connect->CerrarConexion();
	
			return $contador;
		}
	}
	
}